iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0
Software Development

新手村的練功筆記系列 第 17

Day 17 SQL 語法複習與應用

  • 分享至 

  • xImage
  •  

今天是SQL語法回顧與練習的一天
讓我們來複習一下我們目前學到的SQL語法
並回答下列問題吧/images/emoticon/emoticon69.gif

讓我們先回顧一下目前學到的SQL語法有哪些
增加限定條件 WHERE + <condition>
資料不重複 DISTINCT
資料排序 ORDER BY ASC/DSEC
限制資料筆數 LIMIT 5
限制資料筆數和偏移量 LIMIT 5 OFFSET 5

以及好用的運算子們

1.第一題我們要找出加拿大的城市與他們對應的人口數

因此,我們只需要用WHERE並加上國家=加拿大的condition便可以撈出我們想要的結果

2.第二題我們需要找出指定國家的城市,並且依照他們的緯度由北至南的排序

所以會用WHEREORDER BY

3.第三題我們要列出所有在芝加哥西邊的城市,並且依照經度由西至東的排列
這題我們要先知道要怎麼利用經度來找出芝加哥西邊的城市

由於整個美洲都在本初子午線(prime meridian)左邊
所以整個美洲的城市其經度皆為負值 ; 經度往東為正,往西為負
因此若想要找出芝加哥西邊的城市即代表他們的經度必須小於芝加哥所在的經度

有了以上的概念之後
我們便可以利用WHERE來限制經度
並用ORDER BY來排序


pic source https://zh.wikipedia.org/zh-tw/%E6%9C%AC%E5%88%9D%E5%AD%90%E5%8D%88%E7%B7%9A

pic source https://journeynorth.org/tm/LongitudeIntro.html

4.第四題要找出墨西哥人口數最多的兩個城市
因此我們便可以先用WHERE限制在墨西哥的城市
接著用ORDER BY 將城市依照人口數由大到小排列
最後用LIMIT選出前兩筆資料便是答案

5.第五題的概念和第四題非常相似
只是多了要挑選人口數第3大和第4大的城市
因此除了WHERE ORDER BY LIMIT 之外
我們還必須使用 OFFSET 來選出人口數第3大和第4大的城市

因此打完收工,今天的複習就到這裡
剩下的我們明天繼續囉/images/emoticon/emoticon29.gif


上一篇
Day 16 SQL語法 - DISTINCT, ORDER BY, LIMIT & OFFSET
下一篇
Day 18 SQL語法 - INNER JOIN
系列文
新手村的練功筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言